Multiple tone modulation schemes are currently used in a wide variety of communication systems. For example, discrete multi-tone (DMT) modulation is used with digital subscriber line (DSL) technologies, including ADSL (Asymmetric DSL) and VDSL (Very high speed DSL) techniques. A DMT modulated signal is the sum of a number of orthogonal sub-carriers (or “tones”). Data on each of the sub-carriers is independently modulated using a technique such as Quadrature Amplitude Modulation (QAM). For example, in DSL, DMT uses a large number of equally spaced tones (for example, 256, or 512, or more, up to a few thousand tones), each individually modulated by QAM to encode a number of data bits. The number of bits per tone is assigned based on the capacity of the tone. In widely-adopted DSL standards, each tone can be modulated by a maximum of 15 bits. A related form of multiple tone modulation is Carrier-less Orthogonal Frequency Division Multiplexing (COFDM), used for example in some types of digital television transmission. In COFDM it is common for all of the tones making up the signal to carry the same fixed number of bits, for example 6 bits per tone (also sometimes called 64-QAM) or 4 bits per tone (or 16-QAM), according to circumstances.
In outline, QAM conveys data by modulating the amplitude of two carrier waves of the same frequency that are in quadrature (i.e., out of phase with each other by 90°). These two carrier waves can alternatively be considered as a single complex (2-dimensional) wave having a complex amplitude. In QAM, data to be transmitted is encoded by choosing a point representing its value from a regular 2-dimensional constellation of possible points. For example, a 2-bit constellation includes 4 possible data points (00, 01, 10, 11) and a 4-bit constellation includes 16 possible data points. As described above, the maximum number of bits per tone in DSL is 15. Therefore, the maximum constellation size used in DSL QAM is a 15-bit constellation, in which there are 32768 possible data points. Each possible point in a constellation grid has an associated X (real) coordinate value and Y (imaginary) coordinate value. The X and Y coordinate values together form the 2-dimensional (complex) amplitude to be applied by modulation to the two component carrier waves that make up the individual tone. Each tone in the total DMT signal can be modulated independently (discretely) with its own set of data bits, the size of which (and hence the constellation size of that tone) is determined by the capacity of the communication channel at that tone's particular frequency; the capacity is determined principally by the level of background noise that is measured at frequencies close to the tone's frequency. For example, a first tone, at a frequency with a certain noise level, might carry 4 bits, a subsequent tone, at a frequency with a somewhat higher noise level, only 3 bits, the next tone with less noise than the first, 5 bits, the one after that, with less noise still, 7 bits, etc.
On a higher level, each segment in time, or symbol, of the transmitted DMT signal is formed from the summation of all the modulated tones, over a fixed period. (Commonly, the period of the symbol is the least common multiple of the periods of the individual sub-carrier waves, or is related to it, for example by being a defined factor (such as 17/16) longer; this type of arrangement is used in both ADSL and VDSL.) In each symbol, a collection of data bits to be transmitted is subdivided into multiple sub-sets according to the capacities of the associated tones. Each subset is modulated onto its respective tone for the duration of the symbol; then the next collection of data bits to be transmitted is sub-divided and modulated onto the tones for the duration of the next symbol, and so on. In DSL, the fixed period of each symbol is typically a few hundred microseconds, leading to a symbol frequency of a few thousands of times per second. Different DSL standards support different symbol frequencies: for example 4000 Hz and 8000 Hz are used in various modes of VDSL, while ADSL normally uses a symbol frequency of approximately 4059 Hz.
As transmitted, the chosen constellation point for each of the tones together comprising the DMT signal in a given symbol is exactly (or near-exactly) aligned with a particular position on the notional grid representing all possible points. It is in that sense ideally represented in the transmitted signal. However, in any practical communication link, noise and other distortions affect the transmitted signal before it reaches the receiver at the other end of the link. The signal as received is therefore different from the signal as transmitted. It is the function of the receiver to extract, as accurately as possible, the information originally modulated to create the “ideal” DMT signal from the—somewhat distorted or corrupted—signal that is actually received.
Upon receipt of each DMT symbol, after some initial processing in the receiver, the QAM demodulator examines the received symbol to identify the individual tones with their complex amplitudes, and for each received tone estimates the value of the data actually transmitted on the tone, based on the observed complex amplitude (X and Y coordinates) of the tone. The estimated value (the most likely one to have been transmitted) is selected by determining the “ideal point” on the constellation grid which is closest to the actual position (X,Y coordinates) of the tone as received.
In order to increase flexibility in modem development and application, it has become more common to use software to perform functions, such as QAM decoding, in a DMT receiver. However, performing the QAM decoding operation purely in software is complex and uses a significant number of CPU cycles to decode a single tone. For technologies requiring a large amount of decoding, such as VDSL in which there may be thousands of tones in each symbol, and thousands of symbols per second to demodulate, the QAM decoding process represents a significant portion of the total computational cost for a software-based DMT receiver.
What is therefore needed is a system and method that significantly reduce the number of cycles needed to perform QAM decoding operations, thereby accelerating the QAM decoding process.
The present invention will now be described with reference to the accompanying drawings. In the drawings, like reference numbers can indicate identical or functionally similar elements. Additionally, the left-most digit(s) of a reference number may identify the drawing in which the reference number first appears.